package com.yesep.learn.design.creational.singleton;

/**
 * 饿汉式单例模式是一种简单的单例模式实现方式，它在类加载时就完成了单例对象的创建。
 * 这种方式的好处在于线程安全并且简单易懂，但缺点是无论是否使用单例对象，都会在类加载时创建实例，可能会造成资源浪费。
 */
public class EagerSingleton {

    // 单例对象在类加载时就已经创建
    private static final EagerSingleton INSTANCE = new EagerSingleton();

    // 构造函数私有化
    private EagerSingleton() {
        // 防止反射攻击
        if (INSTANCE != null) {
            throw new IllegalStateException("EagerSingleton instance already exists!");
        }
    }

    // 提供公共的静态方法来获取单例对象
    public static EagerSingleton getInstance() {
        return INSTANCE;
    }
}
